package com.hds.modules.app.entity.wx.common;

import java.util.Random;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;


/**
 * 公用工具类
 *
 * @author guonan
 * @version 1.0
 */
public class CommonUtils
{
    /**
     * 生成随机字符串
     * @param num 生成位数
     * @return
     */
    public static String getRandomStr(int num)
    {
        String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

        Random random = new Random();

        StringBuffer sb = new StringBuffer();

        for(int i = 0; i < num; i++)
        {
            int number = random.nextInt(base.length());
            sb.append(base.charAt(number));
        }

        return sb.toString();
    }

    /**
     * 获取客户端IP
     * @param request
     * @return
     */
    public static String getIpAddr(HttpServletRequest request)
    {
        String ip = request.getHeader("x-forwarded-for");

        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("Proxy-Client-IP");
        }
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getHeader("WL-Proxy-Client-IP");
        }
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
            ip = request.getRemoteAddr();
        }

        int lastIndex = ip.lastIndexOf(",");

        if(lastIndex!=-1){
            String[] ips = StringUtils.split(ip, ",");
            ip = ips[0];
        }
        return ip;
    }

}